西门子s7 | 您所在的位置:网站首页 › 西门子s7 协议 › 西门子s7 |
西门子s7-200smart PLC通讯协议(TCP)
由于网上找到的大部分指令解析资料都是以1200、300 等为主的指令,并未见到200smart系列,且恰巧项目需要与该plc通讯读写数据。虽然找到一些现有c#的工程代码不过对200smart系列通讯总有些问题,若用opc需要资金成本,故觉定自行开发通讯软件,找时间进行学习指令。 参考文档: 西门子PLC以太网 通讯协议 解析 常用PLC通讯协议 抓包工具 - Wireshark(详细介绍与TCP三次握手数据分析) 主要思路使用kepwareOPC服务器以及Wireshark网络数据抓包工具实现对s7-200smart PLC通讯指令分析,最终通过软件组合对应指令实现数据读取。 具体实现先配好OPC服务器,并通过quick client能正确读取到指定内存地址的数据。 根据网上资料显示西门子PLC通讯前需进行两次握手指令,而opc服务器仅在有客户端连接时才会发送指令。故: 1、先启动抓包软件监听与PLC连接的网卡,设置过滤规则只显示TCP协议; 2、启动quick client让opc服务器开始发送指令; 3、关闭quick client,观察抓取到的数据: 注: 本机IP:192.168.1.10 ;PLC:192.168.1.121 抓包软件中通过源IP及目标IP确定指令收发方向,在封包数据中只需观察以下几行数据即可: 本机发送:(红框) 其中每一位的意义说明如下: PLC回复(上图黄框) 本机发送: PLC回复: 本次测试读取PLC M20区一个字节、Q0区一个字、V0区双字; 注:OPC服务器会将多种读取目标组合成一个指令 本机发送: 上图中从0030行中的“03 00 …”开始至结尾,每一位对应上上图。 此处读取的数据长度为十进制的十六进制显示,例如长度1,表示为0x01,长度4,表示为0x04. 该指令中包含三组读取指令,每组以 12 0A 10 02 ... 开头,后面紧跟两个字节为读取的长度,以字节为单位 PLC回复:
软件介绍判断时可先判断指令中的成功读取标志:0xff然后截取对应长度的数据即可 此处长度表示为 ( 字节长度 x 8 ) 即位的数量,例如:1 指令中为0x08, 长度2在指令中为 0x10 长度4在指令中为0x20 |
CopyRight 2018-2019 实验室设备网 版权所有 |